//! ## Test Data for CS2 System
//!
//! This crate provides test data for the unittests and integration tests in the CS2
//! System.

pub const PATH_0: &str = "/lib/libtest0.so";
pub const PATH_1: &str = "/lib/libtest1.so";
pub const PATH_2: &str = "/lib/libtest2.so";
pub const PATH_3: &str = "/lib/libtest3.so";
pub const PATH_4: &str = "/lib/libtest4.so";

pub const PATHS: [&str; 5] = [PATH_0, PATH_1, PATH_2, PATH_3, PATH_4];

pub const GUEST_CODE_0: [u8; 3] = [0x77, 0x6F, 0x72];
pub const GUEST_CODE_1: [u8; 4] = [0x48, 0x65, 0x6C, 0x6C];
pub const GUEST_CODE_2: [u8; 5] = [0x6F, 0x20, 0x57, 0x6F, 0x72];
pub const GUEST_CODE_3: [u8; 6] = [0x6C, 0x64, 0x21, 0x21, 0x21, 0x21];
pub const GUEST_CODE_4: [u8; 7] = [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57];

pub const GUEST_CODES: [&[u8]; 5] = [
    &GUEST_CODE_0,
    &GUEST_CODE_1,
    &GUEST_CODE_2,
    &GUEST_CODE_3,
    &GUEST_CODE_4,
];

pub const HOST_META_0: [u8; 4] = [0x7F, 0x45, 0x4C, 0x46];
pub const HOST_META_1: [u8; 4] = [0xEC, 0xA5, 0xC1, 0x00];
pub const HOST_META_2: [u8; 4] = [0x5F, 0x5F, 0x5F, 0x5F];
pub const HOST_META_3: [u8; 4] = [0x2B, 0x41, 0x4C, 0x4C];
pub const HOST_META_4: [u8; 4] = [0xFF, 0xEE, 0xDD, 0xCC];

pub const HOST_METAS: [&[u8]; 5] = [
    &HOST_META_0,
    &HOST_META_1,
    &HOST_META_2,
    &HOST_META_3,
    &HOST_META_4,
];

pub const HOST_CODE_0: [u8; 8] = [0xDE, 0xAD, 0xBE, 0xEF, 0x5F, 0x5F, 0x5F, 0x5F];
pub const HOST_CODE_1: [u8; 8] = [0x7C, 0x9D, 0xBE, 0xEF, 0x10, 0x31, 0x52, 0x73];
pub const HOST_CODE_2: [u8; 8] = [0x3C, 0x5D, 0x7E, 0x9F, 0x20, 0x41, 0x62, 0x83];
pub const HOST_CODE_3: [u8; 8] = [0x1C, 0x3D, 0x5E, 0x7F, 0x30, 0x51, 0x72, 0x93];
pub const HOST_CODE_4: [u8; 8] = [0x0C, 0x2D, 0x4E, 0x6F, 0x40, 0x61, 0x82, 0xA3];

pub const HOST_CODES: [&[u8]; 5] = [
    &HOST_CODE_0,
    &HOST_CODE_1,
    &HOST_CODE_2,
    &HOST_CODE_3,
    &HOST_CODE_4,
];

pub const PATH_ALT_0: &str = "/lib/libc.so.6";
pub const PATH_ALT_1: &str = "/lib//libc.so.6";
pub const PATH_ALT_2: &str = "/lib/libc.so.6//";
pub const PATH_ALT_3: &str = "/lib/libc$.so.6";
pub const PATH_ALT_4: &str = "/lib/libc$$.so.6";
pub const PATH_ALT_5: &str = "/lib/libc$.so.6$";
pub const PATH_ALT_6: &str = "/lib/libc$$.so.6/";
pub const PATH_ALT_7: &str = "./lib/../lib/libc.so.6";
pub const PATH_ALT_8: &str = "../lib/././libc.so.6";

pub const PATHS_ALT: &[&str; 9] = &[
    PATH_ALT_0, PATH_ALT_1, PATH_ALT_2, PATH_ALT_3, PATH_ALT_4, PATH_ALT_5, PATH_ALT_6, PATH_ALT_7,
    PATH_ALT_8,
];
